package main

import "fmt"

// 修改数组里面的元素，  但数组的长度和类型不可修改
func D1() {
	var dataList = [3]string{"m", "y", "c"}
	dataList[1] = "yyyyy"
	fmt.Println(dataList)
}

func D2() {
	// 将数组赋值给新的数组时， 是一次拷贝动作
	// 新数组里面的值不会因为 旧数组的值改变而改变
	var dataList = [3]string{"m", "y", "c"}
	dataList2 := dataList
	dataList[1] = "yyyyy"
	fmt.Println(dataList2, dataList)
}

// 数组的嵌套
func D3() {
	// 定义一个嵌套数组
	// 第一个括号里面代表， 这个数组里面有两个子数组
	// 第二个括号里面代表， 每个子数组里面有3个string类型的元素
	var nestList [2][3]string
	nestList[0] = [3]string{"m", "y", "c"}
	nestList[1] = [3]string{"d", "j", "r"}

	// 修改嵌套数组中的元素
	nestList[1][2] = "zhuzhu"
	fmt.Println(nestList)

	// 另一种定义方式
	var nestList2 = [3][2]int{[2]int{1, 2}, [2]int{11, 22}, [2]int{333, 444}}
	fmt.Println(nestList2)
	var nestList3 = [3][2][1]int{[2][1]int{[1]int{1}, [1]int{11}}, [2][1]int{[1]int{2}, [1]int{22}}, [2][1]int{[1]int{3}, [1]int{33}}}
	fmt.Println(nestList3)
}
